//AbstractModel.h
//Created 03/05/14
//Created By Daniel Bowler
//
//(Game) Models should inherit from this - Ie, classes created for the game
//which represents an object in the game and uses the engine defined
//models. It simply provides one or two functions that should be implemented.
//
//Note: AbstractAdvancedModels exist for game objects which do not use: AnimatedModel,
//StaticInstancedModel, or StaticModel

#pragma once

//Forward declare graphics interface -  a function will add this model
//to the batch
class GraphicsInterface;

class AbstractModel
{
public:
	//Does nothing
	AbstractModel();
	//Pure virtual. 
	virtual ~AbstractModel() = 0;

public:
	//Call this and add a model to the graphics interface batch : Override.
	virtual void AddToBatch(GraphicsInterface* gi) = 0;
};